<?php
  /**
   * Referential (Road Map)
   *
   * Editeur Utilisateur N+1 (SU) & Formulaire Utilisateur (U)
   * 
   * Réalisation en Javascript pour la partie editeur, peu de javascript pour la
   * partie formulaire
   * 
   * Transferts et stockage des données en JSON (envisager AJAX pour l'éditeur)
   *
   * l'Editeur propose plusieurs types de champs possibles :
   * txt (taille, type : mail, url, ...), checkbox, list, radio, file, select...
   * Tous ces types peuvent être définis dans Elgg comme des vues
   * Chaque champ peut être simple, multiple ouvert ou multiple fermé (ex: 2)
   *
   * Les champs sont regroupés en sections (sous sections ?)
   *
   * Nous avons deux types d'Objets :
   * 1 référentiel & 1 instance de référentiel (R & iR)
   * Chaque objet gère son niveau d'accès
   * 1 R public contenant 1 iR ne peut être effacé ou rendu privé
   *
   * 1 U est limité à 1 iR
   */
  
  function referential_init() {
    global $CONFIG;
    register_translations($CONFIG->pluginspath . "referential/languages/");
    // Set up menu for logged in users
    if (isloggedin()) {
      add_menu(elgg_echo('Référentiels et diagnostics'), $CONFIG->wwwroot . "mod/referential/index.php?user=" . $_SESSION['user']->username);
    }
    // Page Handler : jolies URLs
    //register_page_handler('referential','referential_page_handler');
    
    // URL Handler
    //register_entity_url_handler('referential_url','object','referential');

    extend_view('css','referential/css');
    register_entity_type('object','referential');
  }
  
  function referential_pagesetup() { 
    global $CONFIG;
    //add submenu options
    if (get_context() == "referential") {
      if ((page_owner() == $_SESSION['guid'] || !page_owner()) && isloggedin()) {
        $page_owner = page_owner_entity();
        add_submenu_item(elgg_echo('Mon Tableau de bord'),$CONFIG->wwwroot."mod/referential/index.php?username=" . $_SESSION['user']->username);
        if(($page_owner->role !='student' && $page_owner->role !='student') || isadminloggedin()  ) {
          add_submenu_item(elgg_echo('Créer un référentiel de compétences'),$CONFIG->wwwroot."mod/referential/r_add.php");
        }

        add_submenu_item(elgg_echo('Tous les référentiels de compétences'),$CONFIG->wwwroot."mod/referential/r_list.php");
        add_submenu_item(elgg_echo('Tous les diagnostics de compétences'),$CONFIG->wwwroot."mod/referential/ir_list.php");
      }
      else if (page_owner()) {
        $page_owner = page_owner_entity();
        if ($page_owner instanceof ElggUser) // Sorry groups, this isn't for you.
          add_submenu_item(elgg_echo('pel:mine'),$CONFIG->wwwroot."mod/pel/" . $_SESSION['user']->username);
        add_submenu_item(elgg_echo('pel:everyone'),$CONFIG->wwwroot."mod/pel/everyone.php");
      }
      else {
        add_submenu_item(elgg_echo('pel:everyone'),$CONFIG->wwwroot."mod/pel/everyone.php");
      }
    }
  }

  function referential_page_handler($page) {
    // première partie de l'adresse, le nom d'utilisateur
    if (isset($page[0])) {
      set_input('username',$page[0]);
    }
    // The second part dictates what we're doing
    if (isset($page[1])) {
      switch($page[1]) {
        case "read":	      set_input('pelpost',$page[2]);
                                @include(dirname(__FILE__) . "/viewlang.php");
                                return true;
                                break;
        case "friends":	      @include(dirname(__FILE__) . "/friends.php");
                                return true;
                                break;
      }
    // If the URL is just 'pel/username', or just 'pel/', load the standard pel index
    } else {
    @include(dirname(__FILE__) . "/index.php");
    return true;
    }
    return false;
  }
  
  /**
  * Populates the ->getUrl() method for pel objects
  *
  * @param ElggEntity $pelpost pel post entity
  * @return string pel post URL
  */
  function referential_url($pelpost) {
    global $CONFIG;
    $title = $pelpost->title;
    $title = friendly_title($title);
    //	return $CONFIG->url . "pg/pel/" . $pelpost->getOwnerEntity()->username . "/read/" . $pelpost->getGUID() . "/" . $title;
    return $CONFIG->url . "pg/pel/" . $pelpost->getOwnerEntity()->username . "?guid=" . $pelpost->getGUID();
  }

  
  register_elgg_event_handler('init','system','referential_init');
  register_elgg_event_handler('pagesetup','system','referential_pagesetup');
  
  // Enregistrement des actions
  global $CONFIG;
  register_action("referential/r_edit_a",false,$CONFIG->pluginspath . "referential/actions/r_edit_a.php");
  register_action("referential/r_delete_a",false,$CONFIG->pluginspath . "referential/actions/r_delete_a.php");
  register_action("referential/ir_edit_a",false,$CONFIG->pluginspath . "referential/actions/ir_edit_a.php");
  register_action("referential/ir_delete_a",false,$CONFIG->pluginspath . "referential/actions/ir_delete_a.php");
?>